package com.ticket.sass.common.douyin.openapi.resposne

import com.google.gson.annotations.SerializedName

data class ListGoodsData(
    @SerializedName("has_more") val hasMore: Boolean,
    @SerializedName("next_cursor") val nextCursor: String,
    @SerializedName("products") val products: List<ProductContainer>,
) : ApiResponseBaseData() {
    data class ProductContainer(
        @SerializedName("product") val product: Product,
        @SerializedName("sku") val sku: Sku,
        @SerializedName("commission_info") val commissionInfo: CommissionInfo,
        @SerializedName("online_status") val onlineStatus: Long
    )

    data class Product(
        @SerializedName("category_full_name") val categoryFullName: String,
        @SerializedName("out_id") val outId: String,
        @SerializedName("owner_account_id") val ownerAccountId: Long,
        @SerializedName("attr_key_value_map") val attrKeyValueMap: Map<String, String>,
        @SerializedName("category_id") val categoryId: Long,
        @SerializedName("product_id") val productId: String,
        @SerializedName("biz_line") val bizLine: Long,
        @SerializedName("creator_account_id") val creatorAccountId: Long,
        @SerializedName("product_type") val productType: Long,
        @SerializedName("account_name") val accountName: String,
        @SerializedName("pois") val pois: List<Poi>,
        @SerializedName("product_name") val productName: String,
        @SerializedName("sold_end_time") val soldEndTime: Long,
        @SerializedName("sold_start_time") val soldStartTime: Long,
        @SerializedName("telephone") val telephone: List<String>
    )

    data class Poi(
        @SerializedName("poi_id") val poiId: Long,
        @SerializedName("supplier_ext_id") val supplierExtId: String,
        @SerializedName("supplier_id") val supplierId: Long
    )

    data class Sku(
        @SerializedName("actual_amount") val actualAmount: Long,
        @SerializedName("attr_key_value_map") val attrKeyValueMap: Map<String, String>,
        @SerializedName("status") val status: Long,
        @SerializedName("update_time") val updateTime: Long,
        @SerializedName("create_time") val createTime: Long,
        @SerializedName("origin_amount") val originAmount: Long,
        @SerializedName("sku_id") val skuId: String,
        @SerializedName("sku_name") val skuName: String,
        @SerializedName("stock") val stock: Stock
    )

    data class Stock(
        @SerializedName("limit_type") val limitType: Long,
        @SerializedName("stock_qty") val stockQty: Long
    )

    data class CommissionInfo(
        @SerializedName("platform_take_rate") val platformTakeRate: Long
    )

}
